查看原文
其他

精通Linux系列二十三:主机网络信息

拾叁 更AI 2023-10-21

点击关注公众号,AI&编程干货及时送达   


命令含义
host查找主机名、IP地址和DNS信息。
whois查找互联网域名的注册人。
ping检查远程主机是否可达。
traceroute查看到远程主机的网络路径。

当处理远程计算机时,你可能想了解更多关于它们的信息。它们的所有者是谁?IP地址是什么?它们在网络中的位置在哪里?

host

stdin  stdout  - file  -- opt  --help  --version

host [选项] name [服务器]

host命令通过查询DNS来查找远程机器的主机名或IP地址:

→ host www.ubuntu.org
www.ubuntu.com的地址是 91.189.90.41
→ host 91.189.90.41
41.90.189.91.in-addr.arpa 域名指向
 jujube.canonical.com.

它还可以找出更多信息:

→ host -a www.ubuntu.org
尝试 "www.ubuntu.org"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR ...
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, ...

;; QUESTION SECTION:
;www.ubuntu.org.                     IN      ANY

;; ANSWER SECTION:
www.ubuntu.org.      60      IN      CNAME   ubuntu.org.

尽管这个输出的完整讨论超出了本书的范围。最后一个可选的"服务器"参数指定了查询的特定名称服务器:

→ host www.ubuntu.org ns2.dondominio.com
使用的域名服务器:
名称: ns2.dondominio.com
地址: 93.93.67.2#53
别名: 

www.ubuntu.org 是 ubuntu.org 的别名。
ubuntu.org的地址是 147.83.195.55
ubuntu.org 的邮件由 10 mx2.upc.es 处理。
ubuntu.org 的邮件由 10 mx1.upc.es 处理。

要查看所有选项,只需键入host即可。

实用选项

-a显示所有可用的信息。
-t选择名称服务器查询的类型:AAXFRCNAMEHINFOKEYMXNSPTRSIGSOA等等。

以下是使用 -t 选项查找 MX 记录的示例:

→ host -t MX redhat.com
redhat.com 的邮件由 5 mx1.redhat.com处理。
redhat.com 的邮件由 10 mx2.redhat.com处理。

如果 host 命令不能满足你的需求,试试 dig,这是另一个强大的 DNS 查找工具。你可能也会遇到 nslookup 命令,虽然它已经大部分过时,但仍然可以在一些 Linux 和 Unix 系统上找到。

whois

stdin  stdout  - file  -- opt  --help  --version

whois [选项] 域名

whois命令查找互联网域名的注册情况:

→ whois linuxmint.com
...
域名:LINUXMINT.COM
注册商:TUCOWS DOMAINS INC.
...
行政联系人:
    Lefebvre, Clement
...
技术联系人:
    Hostmaster, Servage
...
创建日期:2006年6月7日
到期日期:2016年6月7日
...

以及注册商提供的几屏幕的法律免责声明。

实用选项

-h 注册商在给定的注册商的服务器上执行查找。例如,whois -h whois.networksolutions.com yahoo.com
-p 端口查询给定的TCP端口,而不是默认的43端口(whois服务)。

ping

stdin  stdout  - file  -- opt  --help  --version

ping [选项] host

ping 命令告诉你远程主机是否可达。它向远程主机发送小包(确切地说是ICMP包)并等待响应:

→ ping google.com
PING google.com (74.125.226.144) 来自192.168.0.10 :
56(84) bytes of data.
64 bytes from www.google.com (74.125.226.144):
  icmp_seq=0 ttl=49 time=32.390 msec
64 bytes from www.google.com (74.125.226.144):
  icmp_seq=1 ttl=49 time=24.208 msec
^C
``` google.com ping statistics ```
2个包已发送,2个包已接收,
0%的包丢失
往返时间最小/平均/最大/mdev =
 24.208/28.299/32.390/4.091 ms

实用选项

-c N最多ping N 次。
-i N在ping之间等待 N 秒(默认1秒)。
-n在输出中打印IP地址,而不是主机名。

traceroute

stdin  stdout  - file  -- opt  --help  --version

traceroute [options] host [packet_length]

traceroute 命令会打印从您的本地主机到远程主机的网络路径,以及数据包在路径中传输所需的时间:

→ traceroute yahoo.com
 1 server.mydomain.com (192.168.0.20) 1.397 ms ...
 2  10.221.16.1 (10.221.16.1) 15.397 ms ...
 3  router.example.com (92.242.140.21) 4.952 ms ...
...
...
16  p6.www.dcn.yahoo.com (216.109.118.69)  * ...

路径中的每个主机会发送三个“探测包”,并报告返回时间。如果经过五秒钟没有响应,则traceroute会打印一个星号。另外,由于防火墙阻止或其他各种原因,traceroute可能会被阻止或无法继续进行,此时它会打印一个符号:

符号含义
!F需要分段。
!H主机不可达。
!N网络不可达。
!P协议不可达。
!S源路由失败。
!X禁止通信的管理规定。
!NICMP不可达代码 *N*。

默认数据包大小为40字节,但您可以使用最后的可选参数 packet_length 来更改此值(例如,traceroute myhost 120)。

有用的选项

-n数字模式:打印IP地址而不是主机名。
-w N将超时时间从五秒更改为 N 秒。

推荐阅读

··································

你好,我是拾叁,7年开发老司机、互联网两年外企5年。怼得过阿三老美,也被PR comments搞崩溃过。这些年我打过工,创过业,接过私活,也混过upwork。赚过钱也亏过钱。一路过来,给我最深的感受就是不管学什么,一定要不断学习。只要你能坚持下来,就很容易实现弯道超车!所以,不要问我现在干什么是否来得及。如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯和编程知识,帮你积累弯道超车的资本。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存